// 1.es6提供了对数组和对象的字面量提取相关数据方法:解构操作
//2.为什么要使用解构? json格式的普及,数据提取
//3.极大的便捷性
//4.数组的解构赋值,2种基本写法,1.分行解构 2.单行解构
// let info=["lichenghao",100,"男"]; //数组解构
// let [name,age,gender]=info; //数据解构赋值

// 1.
// let info=["lichenghao",100,"男"],[name,age,gender]=info;

// 2.单行解构
// let [name,age,gender]=["lichenghao",100,"男"];//最完美

// 3.数组层次也需要匹配
// let [name,[age,[gender]]]=["lichegnhao",[100,["男"]]];

// 4.用逗号作为占位符,
// let [,,gender]=["li","1220","男"]

//5. 可以在数组的元素中设置一个默认值, 当gender没有赋值没,可以采用默认值
// let [name,age,gender="男"]=["kunkun",100];

// 6.还有一种语法,...var语法,可以将没有赋值的内容都赋值给这个变量
//不定元素,将其余的值赋值给other
// let [name,...other]=["xuning",100,"男","女","午饭吃什么"];
// console.log(name);
// console.log(...other);


// 二\对象解构
// 1.对象的解构和数组基本类似的
// 定义对象字面量
// let obj={
//     name:"写作则",
//     age:100
// }
// // 解构至变量
// let {name,age}=obj
// console.log(name);
// console.log(age);


// 2.解构的变量名是已经存在的变量,?
// let obj={
//     name:"写作则",
//     age:100
// },name="kunkun";//被替代

// // console.log(obj.name);//写作则
// ({name,age}=obj);
// console.log(name);//写作则

// 3.对象变量解构可以设置一个默认值,在没有赋值的时候输出默认值
// let obj={
//         name:"写作则",
//         age:100
//  };
// let {name,age,gender}=obj;
// console.log(gender);//如果没有默认值这里是undefined

// 4.如果不想要对象属性名作为解构变量,可以通过键值对的方式更改变量名;
// let obj={
//         name:"写作则",
//         age:100
//  };
//  let {name:myName,age:myAge }=obj;
//  console.log(myName);

// 5.在对象的字面量里,还嵌套了对象,解构时也用相同的方法解开即可
// let obj={
//     name:"kunkun",
//     age:"junlei",
//     info:{
//         id:1,
//         married:"ok"
//     }
// }
// let {name,age,info:{id,married}}=obj
// console.log(age,married);

// 6.对象解构也支持单行的简写模式,
let {name,age}={ name:"kunkun",age:"junlei"}
console.log(age);